Termination w.r.t. Q of the following Term Rewriting System could be proven:

Q restricted rewrite system:
The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

Q is empty.


QTRS
  ↳ Overlay + Local Confluence
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q restricted rewrite system:
The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

Q is empty.

The TRS is overlay and locally confluent. By [19] we can switch to innermost.

↳ QTRS
  ↳ Overlay + Local Confluence
QTRS
      ↳ DependencyPairsProof
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q restricted rewrite system:
The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

The set Q consists of the following terms:

a(d(x0))
b(c(x0))
a(c(x0))
b(d(x0))


Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:

A(d(x)) → A(x)
A(d(x)) → B(a(x))
B(c(x)) → B(x)
B(c(x)) → A(b(x))

The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

The set Q consists of the following terms:

a(d(x0))
b(c(x0))
a(c(x0))
b(d(x0))

We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
QDP
          ↳ MNOCProof
          ↳ Narrowing
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

A(d(x)) → A(x)
A(d(x)) → B(a(x))
B(c(x)) → B(x)
B(c(x)) → A(b(x))

The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

The set Q consists of the following terms:

a(d(x0))
b(c(x0))
a(c(x0))
b(d(x0))

We have to consider all minimal (P,Q,R)-chains.
We use the modular non-overlap check [17] to decrease Q to the empty set.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
QDP
          ↳ Narrowing
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

A(d(x)) → A(x)
A(d(x)) → B(a(x))
B(c(x)) → A(b(x))
B(c(x)) → B(x)

The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

Q is empty.
We have to consider all (P,Q,R)-chains.
By narrowing [15] the rule A(d(x)) → B(a(x)) at position [0] we obtained the following new rules:

A(d(d(x0))) → B(d(c(b(a(x0)))))
A(d(c(x0))) → B(x0)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
QDP
              ↳ DependencyGraphProof
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

A(d(x)) → A(x)
A(d(c(x0))) → B(x0)
A(d(d(x0))) → B(d(c(b(a(x0)))))
B(c(x)) → A(b(x))
B(c(x)) → B(x)

The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

The set Q consists of the following terms:

a(d(x0))
b(c(x0))
a(c(x0))
b(d(x0))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
QDP
                  ↳ Narrowing
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

A(d(x)) → A(x)
A(d(c(x0))) → B(x0)
B(c(x)) → B(x)
B(c(x)) → A(b(x))

The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

The set Q consists of the following terms:

a(d(x0))
b(c(x0))
a(c(x0))
b(d(x0))

We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule B(c(x)) → A(b(x)) at position [0] we obtained the following new rules:

B(c(d(x0))) → A(x0)
B(c(c(x0))) → A(c(d(a(b(x0)))))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
QDP
                      ↳ DependencyGraphProof
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

A(d(x)) → A(x)
B(c(d(x0))) → A(x0)
B(c(c(x0))) → A(c(d(a(b(x0)))))
A(d(c(x0))) → B(x0)
B(c(x)) → B(x)

The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

The set Q consists of the following terms:

a(d(x0))
b(c(x0))
a(c(x0))
b(d(x0))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
                    ↳ QDP
                      ↳ DependencyGraphProof
QDP
                          ↳ UsableRulesProof
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

A(d(x)) → A(x)
B(c(d(x0))) → A(x0)
A(d(c(x0))) → B(x0)
B(c(x)) → B(x)

The TRS R consists of the following rules:

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

The set Q consists of the following terms:

a(d(x0))
b(c(x0))
a(c(x0))
b(d(x0))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
                    ↳ QDP
                      ↳ DependencyGraphProof
                        ↳ QDP
                          ↳ UsableRulesProof
QDP
                              ↳ QReductionProof
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

A(d(x)) → A(x)
B(c(d(x0))) → A(x0)
A(d(c(x0))) → B(x0)
B(c(x)) → B(x)

R is empty.
The set Q consists of the following terms:

a(d(x0))
b(c(x0))
a(c(x0))
b(d(x0))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

a(d(x0))
b(c(x0))
a(c(x0))
b(d(x0))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
                    ↳ QDP
                      ↳ DependencyGraphProof
                        ↳ QDP
                          ↳ UsableRulesProof
                            ↳ QDP
                              ↳ QReductionProof
QDP
                                  ↳ ForwardInstantiation
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

A(d(x)) → A(x)
B(c(d(x0))) → A(x0)
A(d(c(x0))) → B(x0)
B(c(x)) → B(x)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By forward instantiating [14] the rule A(d(x)) → A(x) we obtained the following new rules:

A(d(d(c(y_0)))) → A(d(c(y_0)))
A(d(d(y_0))) → A(d(y_0))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
                    ↳ QDP
                      ↳ DependencyGraphProof
                        ↳ QDP
                          ↳ UsableRulesProof
                            ↳ QDP
                              ↳ QReductionProof
                                ↳ QDP
                                  ↳ ForwardInstantiation
QDP
                                      ↳ ForwardInstantiation
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

B(c(d(x0))) → A(x0)
A(d(d(c(y_0)))) → A(d(c(y_0)))
A(d(c(x0))) → B(x0)
A(d(d(y_0))) → A(d(y_0))
B(c(x)) → B(x)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By forward instantiating [14] the rule B(c(d(x0))) → A(x0) we obtained the following new rules:

B(c(d(d(c(y_0))))) → A(d(c(y_0)))
B(c(d(d(d(c(y_0)))))) → A(d(d(c(y_0))))
B(c(d(d(d(y_0))))) → A(d(d(y_0)))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
                    ↳ QDP
                      ↳ DependencyGraphProof
                        ↳ QDP
                          ↳ UsableRulesProof
                            ↳ QDP
                              ↳ QReductionProof
                                ↳ QDP
                                  ↳ ForwardInstantiation
                                    ↳ QDP
                                      ↳ ForwardInstantiation
QDP
                                          ↳ ForwardInstantiation
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

B(c(d(d(c(y_0))))) → A(d(c(y_0)))
B(c(d(d(d(c(y_0)))))) → A(d(d(c(y_0))))
A(d(c(x0))) → B(x0)
A(d(d(c(y_0)))) → A(d(c(y_0)))
A(d(d(y_0))) → A(d(y_0))
B(c(d(d(d(y_0))))) → A(d(d(y_0)))
B(c(x)) → B(x)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By forward instantiating [14] the rule A(d(c(x0))) → B(x0) we obtained the following new rules:

A(d(c(c(d(d(d(y_0))))))) → B(c(d(d(d(y_0)))))
A(d(c(c(d(d(c(y_0))))))) → B(c(d(d(c(y_0)))))
A(d(c(c(d(d(d(c(y_0)))))))) → B(c(d(d(d(c(y_0))))))
A(d(c(c(y_0)))) → B(c(y_0))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
                    ↳ QDP
                      ↳ DependencyGraphProof
                        ↳ QDP
                          ↳ UsableRulesProof
                            ↳ QDP
                              ↳ QReductionProof
                                ↳ QDP
                                  ↳ ForwardInstantiation
                                    ↳ QDP
                                      ↳ ForwardInstantiation
                                        ↳ QDP
                                          ↳ ForwardInstantiation
QDP
                                              ↳ ForwardInstantiation
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

B(c(d(d(c(y_0))))) → A(d(c(y_0)))
A(d(c(c(d(d(d(y_0))))))) → B(c(d(d(d(y_0)))))
A(d(c(c(d(d(c(y_0))))))) → B(c(d(d(c(y_0)))))
B(c(d(d(d(c(y_0)))))) → A(d(d(c(y_0))))
A(d(d(c(y_0)))) → A(d(c(y_0)))
A(d(c(c(y_0)))) → B(c(y_0))
A(d(c(c(d(d(d(c(y_0)))))))) → B(c(d(d(d(c(y_0))))))
A(d(d(y_0))) → A(d(y_0))
B(c(d(d(d(y_0))))) → A(d(d(y_0)))
B(c(x)) → B(x)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By forward instantiating [14] the rule B(c(x)) → B(x) we obtained the following new rules:

B(c(c(d(d(d(c(y_0))))))) → B(c(d(d(d(c(y_0))))))
B(c(c(d(d(d(y_0)))))) → B(c(d(d(d(y_0)))))
B(c(c(y_0))) → B(c(y_0))
B(c(c(d(d(c(y_0)))))) → B(c(d(d(c(y_0)))))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
                    ↳ QDP
                      ↳ DependencyGraphProof
                        ↳ QDP
                          ↳ UsableRulesProof
                            ↳ QDP
                              ↳ QReductionProof
                                ↳ QDP
                                  ↳ ForwardInstantiation
                                    ↳ QDP
                                      ↳ ForwardInstantiation
                                        ↳ QDP
                                          ↳ ForwardInstantiation
                                            ↳ QDP
                                              ↳ ForwardInstantiation
QDP
                                                  ↳ RuleRemovalProof
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

B(c(d(d(c(y_0))))) → A(d(c(y_0)))
A(d(c(c(d(d(d(y_0))))))) → B(c(d(d(d(y_0)))))
B(c(d(d(d(c(y_0)))))) → A(d(d(c(y_0))))
B(c(c(d(d(d(y_0)))))) → B(c(d(d(d(y_0)))))
A(d(d(c(y_0)))) → A(d(c(y_0)))
B(c(c(y_0))) → B(c(y_0))
B(c(c(d(d(c(y_0)))))) → B(c(d(d(c(y_0)))))
A(d(c(c(y_0)))) → B(c(y_0))
B(c(d(d(d(y_0))))) → A(d(d(y_0)))
B(c(c(d(d(d(c(y_0))))))) → B(c(d(d(d(c(y_0))))))
A(d(c(c(d(d(c(y_0))))))) → B(c(d(d(c(y_0)))))
A(d(c(c(d(d(d(c(y_0)))))))) → B(c(d(d(d(c(y_0))))))
A(d(d(y_0))) → A(d(y_0))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

B(c(d(d(c(y_0))))) → A(d(c(y_0)))
A(d(c(c(d(d(d(y_0))))))) → B(c(d(d(d(y_0)))))
B(c(d(d(d(c(y_0)))))) → A(d(d(c(y_0))))
B(c(c(d(d(d(y_0)))))) → B(c(d(d(d(y_0)))))
A(d(d(c(y_0)))) → A(d(c(y_0)))
B(c(c(d(d(c(y_0)))))) → B(c(d(d(c(y_0)))))
A(d(c(c(y_0)))) → B(c(y_0))
B(c(d(d(d(y_0))))) → A(d(d(y_0)))
B(c(c(d(d(d(c(y_0))))))) → B(c(d(d(d(c(y_0))))))
A(d(c(c(d(d(c(y_0))))))) → B(c(d(d(c(y_0)))))
A(d(c(c(d(d(d(c(y_0)))))))) → B(c(d(d(d(c(y_0))))))
A(d(d(y_0))) → A(d(y_0))


Used ordering: POLO with Polynomial interpretation [25]:

POL(A(x1)) = 1 + x1   
POL(B(x1)) = 2·x1   
POL(c(x1)) = 2·x1   
POL(d(x1)) = 1 + x1   



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
                    ↳ QDP
                      ↳ DependencyGraphProof
                        ↳ QDP
                          ↳ UsableRulesProof
                            ↳ QDP
                              ↳ QReductionProof
                                ↳ QDP
                                  ↳ ForwardInstantiation
                                    ↳ QDP
                                      ↳ ForwardInstantiation
                                        ↳ QDP
                                          ↳ ForwardInstantiation
                                            ↳ QDP
                                              ↳ ForwardInstantiation
                                                ↳ QDP
                                                  ↳ RuleRemovalProof
QDP
                                                      ↳ RuleRemovalProof
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
The TRS P consists of the following rules:

B(c(c(y_0))) → B(c(y_0))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

B(c(c(y_0))) → B(c(y_0))


Used ordering: POLO with Polynomial interpretation [25]:

POL(B(x1)) = 2·x1   
POL(c(x1)) = 1 + 2·x1   



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ MNOCProof
          ↳ Narrowing
            ↳ QDP
              ↳ DependencyGraphProof
                ↳ QDP
                  ↳ Narrowing
                    ↳ QDP
                      ↳ DependencyGraphProof
                        ↳ QDP
                          ↳ UsableRulesProof
                            ↳ QDP
                              ↳ QReductionProof
                                ↳ QDP
                                  ↳ ForwardInstantiation
                                    ↳ QDP
                                      ↳ ForwardInstantiation
                                        ↳ QDP
                                          ↳ ForwardInstantiation
                                            ↳ QDP
                                              ↳ ForwardInstantiation
                                                ↳ QDP
                                                  ↳ RuleRemovalProof
                                                    ↳ QDP
                                                      ↳ RuleRemovalProof
QDP
                                                          ↳ PisEmptyProof
  ↳ QTRS Reverse
  ↳ QTRS Reverse

Q DP problem:
P is empty.
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The TRS P is empty. Hence, there is no (P,Q,R) chain.
We have reversed the following QTRS:
The set of rules R is

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

The set Q is empty.
We have obtained the following QTRS:

d(a(x)) → a(b(c(d(x))))
c(b(x)) → b(a(d(c(x))))
c(a(x)) → x
d(b(x)) → x

The set Q is empty.

↳ QTRS
  ↳ Overlay + Local Confluence
  ↳ QTRS Reverse
QTRS
  ↳ QTRS Reverse

Q restricted rewrite system:
The TRS R consists of the following rules:

d(a(x)) → a(b(c(d(x))))
c(b(x)) → b(a(d(c(x))))
c(a(x)) → x
d(b(x)) → x

Q is empty.

We have reversed the following QTRS:
The set of rules R is

a(d(x)) → d(c(b(a(x))))
b(c(x)) → c(d(a(b(x))))
a(c(x)) → x
b(d(x)) → x

The set Q is empty.
We have obtained the following QTRS:

d(a(x)) → a(b(c(d(x))))
c(b(x)) → b(a(d(c(x))))
c(a(x)) → x
d(b(x)) → x

The set Q is empty.

↳ QTRS
  ↳ Overlay + Local Confluence
  ↳ QTRS Reverse
  ↳ QTRS Reverse
QTRS

Q restricted rewrite system:
The TRS R consists of the following rules:

d(a(x)) → a(b(c(d(x))))
c(b(x)) → b(a(d(c(x))))
c(a(x)) → x
d(b(x)) → x

Q is empty.